package de.revdev.streckenliste.beans;

import de.revdev.streckenliste.beans.exception.RevierVorhandenException;
import de.revdev.streckenliste.dao.RevierDAO;
import de.revdev.streckenliste.dao.StreckenlisteDAO;
import de.revdev.streckenliste.entities.Benutzer;
import de.revdev.streckenliste.entities.Revier;
import de.revdev.streckenliste.entities.Revier.RevierArt;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateful;
/**
 *
 * @author Save
 */
@Stateful
@LocalBean
public class Revierbuilder {
    @EJB
    private RevierDAO rDAO;

    public Revier erstelleRevier(String revierName,RevierArt revierArt,String amtlSchlNrGem,String nrRevLst,Benutzer jaeger ) throws RevierVorhandenException
    {
        
        for (Revier revier : rDAO.findAll()) {
            if (revier.getAmtlSchlNrGem().equals(amtlSchlNrGem) && revier.getNrRevLst().equals(nrRevLst)) {
                throw new RevierVorhandenException(revier);
            }
        }
        Revier revier=new Revier();
        revier.setRevierName(revierName);
        revier.setRevierArt(revierArt);
        revier.setAmtlSchlNrGem(amtlSchlNrGem);
        revier.setNrRevLst(nrRevLst);
        revier.setJaeger(jaeger);
        rDAO.create(revier);
        return revier;
    }
    
    public Revier bearbeiteRevier(Revier revier, String revierName, RevierArt revierArt, String amtlSchlNrGem, String nrRevLst, Benutzer jaeger)
    {
        revier.setRevierName(revierName);
        revier.setRevierArt(revierArt);
        revier.setAmtlSchlNrGem(amtlSchlNrGem);
        revier.setNrRevLst(nrRevLst);
        revier.setJaeger(jaeger);
        rDAO.edit(revier);
        return revier;
    }
    
    public void löscheRevier(Revier revier)
    {
        rDAO.remove(revier);
    }
    
    public List<Revier> holeReviere(Benutzer jaeger){
        return rDAO.findRevierVonBenutzer(jaeger);
    }
}
